package com.hsy.swueasspider.url

import android.util.Base64
import com.hsy.swueasspider.utils.SwuEasSpiderUtils

object SwuEasUrl {
    /** 基础 url */
    object Base {
        // 普通登录界面，用来做登录验证
        const val LOGIN =
            "http://uaaap-swu-edu-cn-s.sangfor.vpn.swu.edu.cn:8118/cas/login?service=https%3A%2F%2Fspvpn.swu.edu.cn%2Fauth%2Fcas_validate%3Fentry_id%3D1"

        const val LOGIN_CHECK = "http://idm-swu-edu-cn-s.sangfor.vpn.swu.edu.cn:8118/am/UI/Login"

        // 登录后界面
        const val AFTER_LOGIN =
            "https://spvpn.swu.edu.cn/portal/#!/service"

        // 获取 TWFID
        const val PORTAL = "https://spvpn.swu.edu.cn/portal/"

        // 进入办事大厅的 url  todo --- 要先在 vpn config中获取 sessionId并拼接到这个 url后
        val ENTRY_TO_HALL: String
            get() {
                return "http://uaaap-swu-edu-cn-s.sangfor.vpn.swu.edu.cn:8118/cas/login?service=https://i.swu.edu.cn:443/PersonalApplications/viewPageV3&sangfor_redirect=1&sangfor_sessid=${getVpnSessionId()}"
            }

        // 获取 vpn 所需的 session id
        private fun getVpnSessionId(): String {
            val TWFID =
                SwuEasSpiderUtils.cookieManager.getCookie(PORTAL).split(";")[0].substring(6)
            return Base64.encodeToString(TWFID.toByteArray(), Base64.DEFAULT)
                .replace("==", "%3D%3D")
        }

        // 判断是否是办事大厅界面
        const val CHECK_IS_HALL =
            "http://i-swu-edu-cn-s.sangfor.vpn.swu.edu.cn:8118/PersonalApplications/viewPageV3"

        // 到教务系统界面
        const val ENTRY_TO_EAS =
            "http://uaaap-swu-edu-cn-s.sangfor.vpn.swu.edu.cn:8118/cas/login?service=http%3A%2F%2Fjw.swu.edu.cn%2Fsso%2Fzllogin"

        // 用来确认当前页是否是教务系统页
        var EAS =
            "http://jw-swu-edu-cn.sangfor.vpn.swu.edu.cn:8118/jwglxt/xtgl/index_initMenu.html?jsdm=&_t=${System.currentTimeMillis()}"

        // logOut
        const val LOG_OUT = "https://spvpn.swu.edu.cn/por/logout.csp?apiversion=1"
    }

    /** 获取数据 url */
    object Data {
        // 成绩
        const val GET_GRADE =
            "http://jw-swu-edu-cn.sangfor.vpn.swu.edu.cn:8118/jwglxt/cjcx/cjcx_cxXsgrcj.html?doType=query&gnmkdm=N305005&sf_request_type=ajax"

        // 成绩明细（平时分、期末分等）
        const val GET_GRADE_DETAIL =
            "http://jw-swu-edu-cn.sangfor.vpn.swu.edu.cn:8118/jwglxt/cjcx/cjcx_cxXsKccjList.html?gnmkdm=N305007&sf_request_type=ajax"
    }
}